在程式世界裡,所有的邏輯與運算都是由「資料」組成的。電腦就像一位超快的計算小幫手,但它需要我們告訴它:資料要放在哪裡、屬於什麼型別、要怎麼運算。今天,我們會從 變數 開始,理解「如何用一個名稱保存資料」;接著介紹 基本資料型別(數字、字串、布林值),再延伸到 運算子 的操作。最後,我們會認識 容器型別(list、tuple、set、dict),這些就像資料的「收納工具箱」,能幫我們更有效率地整理與管理資料。
如果把 Day 1 想像成「準備好工作環境」,那麼 Day 2 就是「開始學會放資料、做計算、整理東西」的關鍵一步。只要掌握這些基礎,未來寫程式就能更靈活、更有邏輯。
想像你有一間房間:
透過這些工具,就像把房間整理得井然有序,未來不論要找東西、加東西或比較,都能快速完成。
變數就像貼了標籤的盒子,可以放任何東西進去。
name = "Jerry"
age = 25
height = 181.3
is_student = True
| 變數名稱 | 放的東西 | 資料型別 | 
|---|---|---|
| name | "Jerry" | 字串 str | 
| age | 25 | 整數 int | 
| height | 181.3 | 浮點數 float | 
| is_student | True | 布林值 bool | 
a = 10        #int
b = 3.14      #float
message = "Hello, Python!"  #str
name = "Jerry"
print(f"{name} 你好")  
age = 25
print(f"你好,我今年 {age} 歲")
print(f"3 加 5 等於 {3 + 5}")
-- 結果:
Python 中,當你在一個運算式中混用不同型別時,會自動轉換型別,這叫做隱性型別轉換。
a = 10              #int
b = 3.5             #float
print(a + b)        # 13.5
print(type(a + b))  # <class 'float'>
-- 可知 a+b 的過程中從int切換成float
print(True)         # True
print(False)        # False
print(int(True))    # 1
print(int(False))   # 0
print(True + 5)     # 6
print(False * 10)   # 0
x = 7
y = 2
print(x / y)        # 3.5
| 運算類型 | 轉換後類型 | 說明 | 
|---|---|---|
| int + float | float | 保留小數精度 | 
| bool + int | int | True 為 1,False 為 0 | 
| int / int | float | 除法回傳浮點數 | 
| bool + float | float | 最終結果為 float | 
age = 25
print("你今年" + age + "歲")  # TypeError
-- 結果:
改用顯性轉型或 f-string:
print("你今年" + str(age) + "歲")
print(f"你今年 {age} 歲")
Python 只對「安全」的型別進行隱性轉換,否則會要求程式設計師自行轉型。
| 運算子 | 意義 | 範例 ( a = 10,b = 3) | 
|---|---|---|
| + | 加法 | a + b→13 | 
| - | 減法 | a - b→7 | 
| * | 乘法 | a * b→30 | 
| / | 除法 | a / b→3.333... | 
| // | 整除 | a // b→3 | 
| % | 餘數 | a % b→1 | 
| ** | 次方 | a ** b→1000 | 
| 運算子 | 意義 | 範例 | 
|---|---|---|
| == | 相等 | a == b | 
| != | 不相等 | a != b | 
| > | 大於 | a > b | 
| < | 小於 | a < b | 
| >= | 大於等於 | a >= b | 
| <= | 小於等於 | a <= b | 
fruits = ["apple", "banana", "cherry"]
print(fruits[0])        # 則會印出 apple
fruits.append("orange") # .append 指令是將orange加入fruits清單裡面
print(fruits)           # ['apple', 'banana', 'cherry', 'orange']
person = {
    "name": "Jerry",
    "age": 25
}
print(person["name"])           # Jerry
print(person.get("name"))       # Jerry
print(person.get("height"))     # None
print(person.get("height", 0))  # 0 (預設值)
colors = ("red", "green", "blue")
print(colors[0])  # red
# colors[0] = "yellow"  # 錯誤!tuple 不可修改
nums = {1, 2, 3, 2, 1}
print(nums)       # {1, 2, 3}
print(len(nums))  # 3
print(2 in nums)  # True
nums.add(4)
print(nums)       # {1, 2, 3, 4}
| 類型 | 是否有順序 | 可否重複 | 可否修改 | 查詢方式 | 自動去重 | 
|---|---|---|---|---|---|
| list | 有 | 可 | 可 | 索引 [i] | 否 | 
| tuple | 有 | 可 | 否 | 索引 [i] | 否 | 
| set | 無 | 否 | 可 | in 運算子 | 是 | 
| dict | 無 | key 唯一 | 可 | 鍵 [key] | 是(key) |